iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Kotlin

new to Kotlin系列 第 16

Day 16 擴充

  • 分享至 

  • xImage
  •  

前兩天我們介紹了介面以及功能性介面
今天則要繼續介紹擴充(Extensions)
擴充這個概念允許我們在類別以及介面增加新的函式,而不用繼承或修改原本的類別或是介面
這使得我們在使用第三方提供的類別或介面時更為便利(由於無法去改動)
如下這個範例將swap函式加到MutableList

fun MutableList<Int>.swap(index1: Int, index2: Int) {
    val tmp = this[index1] // 'this' corresponds to the list
    this[index1] = this[index2]
    this[index2] = tmp
}

擴充的作用範圍
大部分情況下,我們會將擴充定義在package下
若要在宣告的package以外去使用
則要再補上import
如下為原本擴充定義的位置

package org.example.declarations

fun List<String>.getLongestString() { /*...*/}

以下則是在宣告的package以外使用的範例

package org.example.usage

import org.example.declarations.getLongestString

fun main() {
    val list = listOf("red", "green", "blue")
    list.getLongestString()
}

上一篇
Day 15 功能性介面
下一篇
Day 17 資料類別
系列文
new to Kotlin30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言